#ifndef __LED_MATRIX_H__
#define __LED_MATRIX_H__
#include "main.h"
#include "cmsis_os.h"
#include "gpio.h"
#include "rtc.h"
#include <stdio.h>
#include <string.h>

#define HC595_LED_DATA_HIGH() HAL_GPIO_WritePin(LED_DATA_GPIO_Port, LED_DATA_Pin, GPIO_PIN_SET)
#define HC595_LED_DATA_LOW() HAL_GPIO_WritePin(LED_DATA_GPIO_Port, LED_DATA_Pin, GPIO_PIN_RESET)

#define HC595_SHIFT_HIGH() HAL_GPIO_WritePin(SHIFT_CLK_GPIO_Port, SHIFT_CLK_Pin, GPIO_PIN_SET)
#define HC595_SHIFT_LOW() HAL_GPIO_WritePin(SHIFT_CLK_GPIO_Port, SHIFT_CLK_Pin, GPIO_PIN_RESET)

#define HC595_STOR_HIGH() HAL_GPIO_WritePin(STOR_CLK_GPIO_Port, STOR_CLK_Pin, GPIO_PIN_SET)
#define HC595_STOR_LOW() HAL_GPIO_WritePin(STOR_CLK_GPIO_Port, STOR_CLK_Pin, GPIO_PIN_RESET)

void LedTask(void *argument);
void HC595_Send_Array(uint8_t *array, uint16_t array_len);
void lightOneDot(int col, int row);
#endif
